#ifndef WINDOW_MANAGER_H
#define WINDOW_MANAGER_H

/*****************************************************************************************
  @Copyright  2020-2021
  @Date       2021-03-15
  @Author     qiaowei
  @Contact    weiweiqiao@126.com
  @Version    1.0
  @Brief      操作划分类，根据用户操作调用不同方法，包括将用户操作传递给数据操作类进行数据分析，将分析
              后的数据传递给窗体类用于显示
  @Other      none
  @History    none
  @Functions
      init_connections()：初始化信号槽
      sl_exit_application()：退出程序
******************************************************************************************/

#include <QObject>

class Data_processor;

class Window_manager : public QObject
{
    Q_OBJECT
public:
    explicit Window_manager(QObject *parent = nullptr);

signals:
    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    退出程序
    ***************************************************************************/
    void si_exit_application();

    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    发送获取主机网络设置信号
     @param    flag 用户是否选择只显示IPv4标志位，true 只显示IPv4，false 显示所有协议
    ***************************************************************************/
    void si_send_host_info(bool flag);

    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    发送用户主机配置信息
    ***************************************************************************/
    void si_get_host_info(QStringList list);

private:
    void init_connections();

private slots:
    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    退出程序
    ***************************************************************************/
    void sl_exit_application();

private:
    Data_processor* processor_;
};

#endif // WINDOW_MANAGER_H
